Users are increasingly surrounded by multiple computers and electronic devices. Users typically have multiple computers at home, multiple computers at work, multiple displays, a variety of cell phones, portable computers, music players, TVs, game consoles, photo cameras, and reading devices.
Recently developed methods for controlling devices include multitouch phones or surfaces, voice commands, motion sensing controllers (for example, the Wii Remote), body tracking systems (for example, Project Natal), gaze tracking, and game console-like controllers.
Existing user interfaces assume the user of a single computer or a mobile device at a time. The GUI paradigm is still often desktop. Desktop GUI and traditional single-machine operating systems do not work well in the new world of multiple devices and new UI capabilities beyond mouse and keyboard.
Computing devices are loaded with many software applications, most of which are unused. Applications are tied to a particular hardware machine, are not mobile, and are difficult and costly to maintain and upgrade.
Users who have multiple devices can not combine capabilities of one device (e.g. a multi-touch capability of an iPhone) to use with another device (e.g. big screen plasma TV).
Although computers and devices are connected within hundreds of thousands of private local networks or as part of the Internet, the devices are largely unaware of each other. Transferring and synchronizing data between them (i.e. photos) is often a long and painful task.
Existing web applications aim to solve some of these problems. Web applications can be written to provide functions similar to traditional software application but eliminate the need to install them and slow down the physical computer. Web applications can also be built to enable access to data stored on servers from all of the users' devices thus eliminating the need for data synchronization.
However, web applications and browser-based model have some limitations which include:
User experience built with html/javascript is basic and limited
Flash/Silverlight do not have multi-threading model and do not allow to build full-featured applications
Communication/collaboration software cannot be built effectively using web application model or RIA model.
Multi-machine computing environments have recently been developed to address enterprise needs for software deployment, provisioning and management and/or to operate data centers (VMWare vSphere, Citrix Cloud Center, Amazon Elastic Compute Cloud, Microsoft Windows Azure, and others). However, none of these computing environments assume consumer/multi-device scenarios, nor do they provide a user interface (the environments are used to run virtual machines with web applications or desktop operating systems).